1. once one-shot timer is fired, IRQ is raised repeatedly forever.
2. Test pending_intr_nr before pt_irq_masked(), as it is cheaper.
Signed-off-by: Kouya Shimura <kouya@jp.fujitsu.com>
list_for_each_entry ( pt, head, list )
{
- if ( !pt_irq_masked(pt) && pt->pending_intr_nr &&
+ if ( pt->pending_intr_nr && !pt_irq_masked(pt) &&
((pt->last_plt_gtime + pt->period) < max_lag) )
{
max_lag = pt->last_plt_gtime + pt->period;
if ( pt->on_list )
list_del(&pt->list);
pt->on_list = 0;
+ pt->pending_intr_nr = 0;
}
else
{